Computer Programming Queue এর অপারেশন: Enqueue, Dequeue, Peek গাইড ও নোট

470

 কিউয়ে উপাদান যোগ করা (Enqueue)

void enqueue(struct Queue* q, int value) {
    if (q->rear == MAX - 1) {
        printf("Queue Overflow! Cannot enqueue %d\n", value);
    } else {
        if (q->front == -1) { // If queue is empty
            q->front = 0;      // Set front to 0
        }
        q->items[++(q->rear)] = value; // Increment rear and add value
        printf("%d enqueued to queue\n", value);
    }
}

কিউ থেকে উপাদান অপসারণ করা (Dequeue)

int dequeue(struct Queue* q) {
    if (q->front == -1 || q->front > q->rear) {
        printf("Queue Underflow! Cannot dequeue\n");
        return -1; // Return -1 to indicate underflow
    } else {
        return q->items[(q->front)++]; // Return the front value and increment front
    }
}

 কিউয়ের প্রথম উপাদান দেখা (Peek)

int peek(struct Queue* q) {
    if (q->front == -1 || q->front > q->rear) {
        printf("Queue is empty! No front element\n");
        return -1; // Return -1 to indicate empty queue
    } else {
        return q->items[q->front]; // Return the front value
    }
}

 পুরো প্রোগ্রাম উদাহরণ

#include <stdio.h>
#include <stdlib.h>

#define MAX 100 // Queue এর সর্বাধিক সাইজ

struct Queue {
    int items[MAX]; // Queue উপাদানগুলির জন্য অ্যারে
    int front;      // Queue এর প্রথম উপাদানের ইনডেক্স
    int rear;       // Queue এর শেষ উপাদানের ইনডেক্স
};

// Queue তৈরি এবং ইনিশিয়ালাইজেশন
void initQueue(struct Queue* q) {
    q->front = -1; // Queue খালি
    q->rear = -1;  // Queue খালি
}

// Enqueue অপারেশন
void enqueue(struct Queue* q, int value) {
    if (q->rear == MAX - 1) {
        printf("Queue Overflow! Cannot enqueue %d\n", value);
    } else {
        if (q->front == -1) { // If queue is empty
            q->front = 0;      // Set front to 0
        }
        q->items[++(q->rear)] = value; // Increment rear and add value
        printf("%d enqueued to queue\n", value);
    }
}

// Dequeue অপারেশন
int dequeue(struct Queue* q) {
    if (q->front == -1 || q->front > q->rear) {
        printf("Queue Underflow! Cannot dequeue\n");
        return -1; // Return -1 to indicate underflow
    } else {
        return q->items[(q->front)++]; // Return the front value and increment front
    }
}

// Peek অপারেশন
int peek(struct Queue* q) {
    if (q->front == -1 || q->front > q->rear) {
        printf("Queue is empty! No front element\n");
        return -1; // Return -1 to indicate empty queue
    } else {
        return q->items[q->front]; // Return the front value
    }
}

// Main function
int main() {
    struct Queue queue; // Create a queue
    initQueue(&queue);  // Initialize the queue

    enqueue(&queue, 10); // Enqueue elements
    enqueue(&queue, 20);
    enqueue(&queue, 30);

    printf("Front element is %d\n", peek(&queue)); // Peek at front element

    printf("%d dequeued from queue\n", dequeue(&queue)); // Dequeue element
    printf("Front element is now %d\n", peek(&queue)); // Peek at front element

    return 0;
}
Content added By
Promotion

Are you sure to start over?

Loading...